
Documentation for result of GETVALASSUM
[Start ValAssumVector Pension] (see API#deltaVALIDENTRY for "tag keywords" (e.g. "bool>", "num>") that are expected for API processing)
    Decrements
      [1]   <mortRates see DECRATES_MORTRATE_DEF> Mortality rates (active members).
      [2]   <termRates see DECRATES_TERMRATE_DEF> Termination rates (active members).
      [3]   <disRates see DECRATES_DISABRATE_DEF> Disability rates (active members)
      [4]   <retRates see DECRATES_RETRATE_DEF> Retirement rates (active members).
      [5]   <retMortRates see DECRATES_MORTRATE_DEF> Retirement mortality rates (inactive members)
      [6]   <vestedTermMortRates see DECRATES_MORTRATE_DEF> Vested terminated mort. rate (inactive members)
      [7]   <disMemberMortRates see DECRATES_MORTRATE_DEF> Disabled members mort. rate (inactive members)
      [8]   <survBenMortRates see DECRATES_MORTRATE_DEF> Survivor & beneficiary mort. rate (inactive members)
      [9]   <decrType code> Rates to adjust for competing decrements
                1=all (rates)
                2=none (probabilities)
                3=mortality only
      [12]  <decrBegMid bool> Decrement occurs beginning or middle of year? (0=beginning, 1=middle)
      [66]  (not used)
      [79]  (not used)
      [103] <zeroPreRet bool> Zero Pre-retirement Mortality for RPA Current Liability? (0=no, 1=yes)
      [131] <nonDisMortRates see DECRATES_MORTRATE_DEF> PPA non-disabled mortality rates
      [132] <disMortRates see DECRATES_MORTRATE_DEF> PPA disabled mortality rates
      [138] <altMortRate bool> Use non-PPA alternative mortality for actuarial liability? (Used for PPATYPE #in 2 5 only)
      [173] (not used)
      [184] <zeroTrmRet bool> Termination rates continue upon Retirement eligibility? (0=no (default), 1=yes)
      [186] <TVretRates see DECRATES_RETRATE_DEF> Post-termination retirement rates
      [194] <decrMixLRLY bool> Use retired member mortality for contingent lives prior to member death? (0=no, 1=yes)
      [195] <zeroDisRet bool> Disability rates continue after retirement eligibility? (1=yes (default), 0=no)

    Benefit Related
      [15]  <increaseRates see INCRATES_DEF> Component increase rates/Cash Balance crediting rates.
      [104] <basisForLumpSum see LSASSUMS_DEF> Interest and Mortality Basis for Lump Sum Factors
      [145] <insContracts matrix> Participating contract excess return assumptions -- a numeric matrix with at least 4 rows.
            The rows hold:
             Row 1 - Current contract
             Row 2 - Prior contract 1 (1st one in the Plan Def list of prior contracts)
             Row 3 - Prior contract 2 (2nd one in the Plan Def list of prior contracts)
             Row 4+ - Prior contract 3+ (3rd+ one in the Plan Def list of prior contracts)
            the first for the current insurance contract and then one for each prior contract up to at least 4.
            The columns hold:
             [;1] <erRate1 num> Employer contract rate 1
             [;2] <erRate2 num> Employer contract rate 2
             [;3] <eeRate1 num> Employee contract rate 1
             [;4] <eeRate2 num> Employee contract rate 2
      [146] <IncludeNewRates bool> Reflect new accrual rates during the valuation year in PUC and UC liabilities? (1=yes 0=no)
      [156] <mcrRates see INCRATES_DEF> Component deferral interest rate for Modified Cash Refund Annuity payment form

    Q-Primes
      [14]  <qprimes see QPRIMES_DEF> The Q' is the probability (at decrement) of participant electing to receive a benefit.
            This item is a matrix having a row for each benefit for which Q's
            have been specified and columns holding [see QPRIMES_DEF below)
      [149] <optjs code> for joint life optional payment forms
            1=apply percent married assumption
            2=ignore percent married assumption
      [162] <atRiskMostval bool> For At-Risk, use most valuable optional form at each decrement age (PPA only)
      [163] <atRiskAssumeTerm bool> For At-Risk, assume 100% termination if eligible in next 10 years (PPA only)
      [182] <atRiskDecTiming num> For At-Risk, decrement timing (0=same as funding, 1=same as funding unless elig. at end of val. year) (PPA only)

    Liability Methods
      [16]  <costMeth vector> Types of cost methods (1=method chosen, 0=method not chosen):
            [1]  <entAgeNormLevelSal bool> entry age normal -- level % of salary  (Funding) (Accting in Public mode)
            [2]  <entAgeNormLevelDol bool> entry age normal -- level dollar       (Funding)
            [3]  <puc bool>                projected unit credit                  (Funding)
                                           projected benefit obligation           (Accting)
            [4]  <pucAccruedBen bool>      pure unit credit                       (Funding)
                                           accumulated benefit obligation         (Accting)
            [5]  <altAbo bool>             alternative ABO                        (Accting) (not supported eff with 3.10)
            [6]  <altFas bool>             alternative ASC 960/FAS 35             (Accting)
            [7]  <pbgcVarPremLiab bool>    PBGC variable premium liability        (Funding)
            [8]  <attagepct bool>          attained age - level % of salary       (Funding) (Public, SERP, Canadian, & German)
      [67]  <entAgeNormMeth num> Entry Age Normal Methodology (MV,0,1)
              0 = Fund from entry age to 100% retirement decrement age
              1 = Fund from entry age to age benefit has no future benefits
              If public or OPEB mode accounting, the above codes indicate funding and the following codes may also exist
              2 = Fund from entry age to 100% retirement decrement age
              3 = Fund from entry age to age benefit has no future benefits
              5 = a temporary default, should be saved to library as one of the above codes
      [68]  <ageRetFund num> Age requirement for funding
      [69]  <svcReqFund num> Service requirement for funding
      [70]  (not used) (AL methods in old format (base 2) at time of conversion stored here)
      [75]  <projUc bool> Should Projected Unit Credit benefits never be less than
            Accumulated Benefit Obligation benefits? (0 = No, 1 = Yes) -- Fun or BE
            Should Projected Benefit Obligation benefits never be less
            than Accumulated Benefit Obligation benefits? (0 = No, 1 = Yes) -- Acct
      [76]  <pucSvcField nameref> PUC service field name or '' if service defined in census
            is used (used iff [108]=0)
      [86]  <fundEligSvcField nameref> Funding eligibility service field, or '' if service
            defined in census is used (used iff [110]=0)
      [88]  <liabFundEligDate date> Funding eligibility date - constant value
      [90]  <calcVestedLiab bool> Calculate vested liabilities? (1=yes, 0=no)
            (Note: This item is entered on the "Current liability" dialogbox in
             multiemployer, pre-PPA, and pre-PPA and PPA funding assumptions)
      [92]  <salLimitCode code> Code for salary limitations in PVFS calculation
               0 = no limits
               1 = limited per 401(a) maximums
               2 = custom limit
               3 = limit by coded field
      [95]  <runIndAgg bool> Run individual aggregate? (1=yes, else no)
      [96]  <allocMeth code> Allocation method (if 1=dataRecord[95])
               1=current year's liability
               2=database expression
      [97]  <allocAsset num> Liability for allocating assets (if ^/1=dataRecord[95 96])
               1=EAN $
               2=EAN %
               3=PUC
               4=UC
               5=PVFB
      [98]  <databaseExprMin expr> Database expression for minimum basis (^/1 2=dataRecord[95 96])
      [99]  <databaseExprMax expr> Database expression for maximum basis (qualified pension only) (^/1 2=dataRecord[95 96])
      [100] <recs [] nameref> Record indentifiers; matrix of field names (if 1=dataRecord[95])
      [107] <pucEqualUc bool> PUC equal UC for cash balance and career average components
      [108] <pucSvcFldOrDef code> PUC & UC Attribution Service - Linear Proration to Decrement:
               0=Field
               1=Service definition
               2=Notional attribution service (Universal mode only)
      [109] <pucSvcDEFN ref SVCDEFN> ID of ProVal service definition for PUC service (used iff [108]=1)
      [110] <liabFundEligSvcFldOrDef bool> Using ProVal service field (0) or service definition (1)
      [111] <liabFundEligSvcDEFN ref SVCDEFN> ID of ProVal service definition for Funding eligibility service (used iff [110]=1)
      [114] <aveEAN bool> Use average EAN technique?
      [115] <aveEANdatabaseFile str> Database file name used to determine average EAN %
      [116] <aveEANselection expr> Selection expression used to determine ave EAN % /NAMEREF FLDINFO
      [198] <aveEANfrac num> Average EAN expense fraction
      [128] <timingPVFS code> Timing of PVFS:
              0  = beginning of year
             0.5 = middle of year
              1  = end of year
              2  = middle of year, except survivorship at end of year
      [129] <adjustPVFS vector> Adjust PVFS to middle or end of year with
            [1] <int bool> interest
            [2] <mort bool> survivorship
            [3] <salary bool> salary
      [135] <Adjffa bool> Adjust first funding age
      [143] <timingEEContrib num> Timing for employee contributions:
              0 = beginning of year, except survivorship at end of year
              .5 = middle of year, except survivorship at end of year
              2 = same as timing for PVFS, PVFL, val. salary & number adjusted for decrement timing
              3 = beginning of year
              4 = middle of year
              5 = same as timing for PVFS, PVFL, val. salary & number (only available in Public mode)
      [150] <salLimitCustreg ref CUSTREG> ID of Custom Regulatory Table used for PVFS salary limitations (used if [92]=2)
      [151] <interpolateAges bool> Interpolate results to exact age? (0=no, 1=yes) (only available in Universal mode)
      [154] <pucSvcZero bool> If service accrual is 0, assume 1 (0=no, 1=yes) (used if [108]=1)
            (hidden parameter, only set =1 to avoid changes log issue)
      [155] <UCindexation bool> UC benefits ignore future career average indexation? (0=no, 1=yes) (only available in Universal mode)
      [158] <EANNCEECMethod code> Methodology for employee contributions under EAN NC
              0=Level contributions over career ($ or % of pay)
              1=Expected contributions for the year
              2=Level contributions for NC, with accrued liability
      [159] <VLdectiming code> Vested liability eligibility code
              1=follow decrement timing
              2=always beg of year
              (Note: This item is entered on the "Current liability" dialogbox in
               multiemployer, pre-PPA, and pre-PPA and PPA funding assumptions)
      [174] <salCountPBPdisplay code> Display of projected salary & headcount valuation output:
              1=Total count and total Salary
              2=Valuation count and valuation Salary
      [187] <VLeligage code> VL eligibility age:
              1=current age
              2=decrement age
              (Note: This item is entered on the "Current liability" dialogbox in
               multiemployer, pre-PPA, and pre-PPA and PPA funding assumptions)
      [188] <codedLimit vector> Coded field table for PVFS limit (used if [92]=3),
            a nested vector holding:
            [1] <field nameref> name of coded field in database
            [2] <item matrix> matrix with a row for each database code, and columns for:
                [;1] <databaseCode int> internal database codes
                [;2] <basisValue num> PVFS limit
                      0 = none
                     #neg1 = per 401(a)
                     >0 = id of Custom Regulatory Table
      [189] <eanHistSal code> EAN historical salaries for PVFS at entry
              1=Impute salaries prior to valuation date
              2=Use actual salaries where available
      [191] <eanAltNC bool> Ignore Alternative Normal Cost for EAN Accounting calculation (1=Ignore alt NC, 0=Do not ignore alt NC)
      [196] <eancap ref SVCDEFN> ID of service definition used for cap on val salary
      [197] <PVFSdef ref SALDEFN> ID of salary definition used for PVFS and valuation salary
      [201] <calcNonindex bool> Calculate Non-Indexed Liability? 0=no, 1=yes
      [202] <nonindexMethod code> Cost method for nonindexed Liability
              1 = entry age normal -- level % of salary
              2 = entry age normal -- level dollar
              3 = projected unit credit
              4 = pure unit credit
              8 = attained age - level % of salary
      [233] <AttribSvc vector> Notional attribution service calculation parameters (used iff [108]=2), a nested vector holding:
           [1] <type code>
                1=single BFC for all records
                2=varies by coded field
           [2] <benComp ref BFCOMP> ID# of ProVal benefit component (used if [1]=1)
           [3] <codedTable vector> Coded field table (used if [1]=2),
                 a nested vector holding:
                 [1] <field nameref> name of coded field in database
                 [2] <item matrix> matrix with a row for each database code, and columns for:
                     [;1] <databaseCode code> internal database codes
                     [;2] <benComp ref BFCOMP> ID# of ProVal benefit component
           [4] <earlytype code> Potential service span earliest age type:
                  1 = database field
                  2 = constant
           [5] <earlyAgefield nameref> Database field containing the earliest age (used if [4]=1)
           [6] <earlyAge num> Constant value for the earliest age (used if [4]=2)
           [7] <RetAgetype code> Potential service span retirement age type:
                  1 = database field
                  2 = constant
           [8] <retAgefield nameref> Database field containing the retirement age (used if [7]=1)
           [9] <retAge num> Constant value for the retirement age (used if [7]=2)

    Interest & Salary
      [17] <salMeritScale see DECRATES_SALSCALE_DEF> Salary merit scale
      [193] <addtlMeritScale see DECRATES_SALSCALE_DEF> Additional salary merit scale
      [20] <salIncType code> Salary increase rate type:
           1=rates vary by calendar year
           2=rates vary by coded database field
           3=single rate
           8=rates vary by calendar year and coded field
      [21] <staticSalInc numorstr> Static salary increase rate (used if type=3) (can be an assumption constant)
      [22] <varSalInc matrix> Variable salary increase rate. Row for each year in which the rate changes. (used if type #in 1 8)
           [;1]  <startYear int> starting year (calendar) - first row applies to all years prior to the year specified in the second row
           [;2]  <rate numorstr> increase rate (used if type=1, else use info in [200]) (can be assumption constant)
      [199] <salField nameref> Name of salary increase coded database field (used if type #in 2 8)
      [200] <salCodedRates matrix> Salary increase coded database field rates (used if type #in 2 8)
            [;1] <code int> internal database code
            [;2] <const numorstr> constant value, or vector of values for calendar years (can be assumption constant)
      [23] <intType code> Interest rate type:
           1 = static (items 24 & 25 are used)
           3 = variable by calendar year (table in item 26 is used)
           4 = variable by duration from valuation date (input as forward rates) (table in item 147 is used)
           5 = variable by duration from valuation date (input as spot rates) (table in item 147 is used)
           6 = constant from database field (item 185 is used, only available in Universal mode)
           7 = interest rate table from yield curve library
      [24] <staticIntPre numorstr> Static interest rate - pre-decrement (can be an assumption constant)
      [25] <staticIntPost numorstr> Static interest rate - post-commencement (can be an assumption constant)
      [26] <varInt matrix> Variable interest rate table.  Row for each year in which the rate changes.
           [;1]  <startYear int> starting year (calendar) - first row applies to all years prior to the year specified in the second row
           [;2]  <rate num> interest rate
      [133] <intTypePPA code> Interest rate type for PPA funding:
            5 = variable by duration from val date (input as spot rates)
            6 = variable by duration from val date (input as 3-segment spot rates)
            7 = interest rate table from yield curve library
      [130] <varIntPPA matrix> Variable interest rate table for PPA Funding liabilities. Row for each duration in which the rate changes (interest rate type=5).
            [;1]  <startYear int> starting year or duration - first row applies to all durations prior to the duration specified in the second row
            [;2]  <rate num> spot interest rate
      [134] <segIntPPA vector> PPA max tax (non-stabilized) segmented spot rates (used when interest rate type=6)
            [1] <segOneRate num> Interest rate for first segment (durations 1-5)
            [2] <segTwoRate num> Interest rate for second segment (durations 6-20)
            [3] <segThreeRate num> Interest rate for third segment (durations 21+)
      [137] <altIntRate bool> Use non-PPA alternative interest for actuarial liability? (Used for PPATYPE #in 2 5 only)
      [144] <Overridesal see SALASSUMS_DEF> Salary increase overrides for individual operators
      [147] <varIntD matrix> Variable interest rate table. Row for each duration in which the rate changes (used when [133]=5).
            [;1]  <startYear int> starting duration - first row applies to all durations prior to the duration specified in the second row
            [;2]  <rate num> interest rate
      [166] <staticIntInDef numorstr> Static interest rate - in-deferment  (can be an assumption constant)
      [169] <segIntMin vector> PPA funding (stabilized) segmented spot rates (used when [133]=6)
            [1] <segOneRate num> Interest rate for first segment (durations 1-5)
            [2] <segTwoRate num> Interest rate for second segment (durations 6-20)
            [3] <segThreeRate num> Interest rate for third segment (durations 21+)
      [185] <intRateField nameref> Database field for interest rate (used when [23]=6, only available in Universal mode)
      [190] <intStat bool> Statutory fixed rate (0=no, 1=yes) (only availabe in Public mode)
      [206] <intRateTable ref INTRATE> id of interest rate table for actuarial liability (only used when [23]=7)
      [207] <intRateTablePPA ref INTRATE> id of interest rate table for PPA spot rates (only used when [133]=7)

    CAS
      [209] <casIntTypeMal code> CAS Minimum Actuarial Liability interest type
           #neg1 = use PPA Funding Liability interest assumption
            5 = variable by duration from val date (input as spot rates)
            6 = variable by duration from val date (input as 3-segment spot rates)
            7 = interest rate table from yield curve library
      [210] <casAalInt num> CAS Actuarial Accrued Liability interest rate
      [211] <casMalSegInt vector> CAS Minimum Actuarial Liability segmented spot rates (used when [209]=6)
            [1] <segOneRate num> Interest rate for first segment (durations 1-5)
            [2] <segTwoRate num> Interest rate for second segment (durations 6-20)
            [3] <segThreeRate num> Interest rate for third segment (durations 21+)
      [212] <casMalVarInt matrix> Variable interest rate table for CAS Minimum Actuarial Liability. Row for each duration in which the rate changes
            (used when interest rate type=5).
            [;1] <startYear int> starting year or duration - first row applies to all durations prior to the duration specified in the second row
            [;2] <rate num> spot interest rate
      [213] <casAalActMortRates see DECRATES_MORTRATE_DEF> AAL mortality rates (active members)
      [214] <casAalRetMortRates see DECRATES_MORTRATE_DEF> AAL retirement mortality rates (inactive members)
      [215] <casAalVestedTermMortRates see DECRATES_MORTRATE_DEF> AAL vested terminated mort. rate (inactive members)
      [216] <casAalDisMemberMortRates see DECRATES_MORTRATE_DEF> AAL disabled members mort. rate (inactive members)
      [217] <casAalSurvBenMortRates see DECRATES_MORTRATE_DEF> AAL survivor & beneficiary mort. rate (inactive members)
      [218] <casAalMemToCont bool> Use retired member AAL mortality for contingent lives prior to member death? (0=no, 1=yes)
      [219] <casMalActMortRates see DECRATES_MORTRATE_DEF> MAL mortality rates (active members).
      [220] <casMalRetMortRates see DECRATES_MORTRATE_DEF> MAL retirement mortality rates (inactive members)
      [221] <casMalVestedTermMortRates see DECRATES_MORTRATE_DEF> MAL vested terminated mort. rate (inactive members)
      [222] <casMalDisMemberMortRates see DECRATES_MORTRATE_DEF> MAL disabled members mort. rate (inactive members)
      [223] <casMalSurvBenMortRates see DECRATES_MORTRATE_DEF> MAL survivor & beneficiary mort. rate (inactive members)
      [224] <casMalMemToCont bool> Use retired member MAL mortality for contingent lives prior to member death? (0=no, 1=yes)
      [225] <casMethod code> Cost method for CAS Actuarial Accrued Liability
              1 = entry age normal -- level % of salary
              2 = entry age normal -- level dollar
              3 = projected unit credit
              4 = pure unit credit
      [226] <casExclcount nameref> CAS exclusion coded database field, or '' if <not applicable>
      [227] <casExclcodes vector> CAS vector of codes that indicate to exclude from count
      [228] <casAalLsfactorIntAndMort see LSASSUMS_DEF> Interest and Mortality Basis for CAS Actuarial Accrued Liability Lump Sum Factors
      [229] <casMalLsfactorIntAndMort see LSASSUMS_DEF> Interest and Mortality Basis for CAS Minimum Actuarial Liability Lump Sum Factors
      [230] <casAalOptforms see OPTFRM_DEF> Interest and Mortality Basis for CAS Actuarial Accrued Liability Optional Payment Forms
      [231] <casMalOptforms see OPTFRM_DEF> Interest and Mortality Basis for CAS Minimum Actuarial Liability Optional Payment Forms
      [232] <intRateTableCAS ref INTRATE> id# of interest rate table for CAS Minimum Actuarial Liability spot rates (only used when [209]=7)

    Current Liability
      [27] <obraInt num> OBRA or Max Contrib Current Liability Interest rate
      [28] (not used)
      [29] (not used)
      [30] (not used)
      [31] (not used)
      [81] <rpaInt num> RPA Current Liability Interest rate
      [82] <actNon ref MORTRATE> Active and Non-disabled Non-active members: Mortality table ID #
      [83] <nonDis ref MORTRATE> Non-Active disabled members: Mortality table ID #
      [105] <gatewayCurrLiabIntRate num> Gateway Current Liability Interest Rate
            (used to calculate Current Liability for Gateway %)
      [106] <obraOrMaxContrib bool> Is the interest rate in [27] above OBRA (0) or Max Contrib (1)?

    Alternative ASC 960 (FAS 35) Liability
      [32] <fasIntRate num> Interest rate
      [33] (not used)
      [34] (not used)
      [35] (not used)
      [36] (not used)

    PBGC Variable Premium
      [37] <reqInt num> Pre-PPA interest rate (always scalar)
      [38] (not used)
      [39] (not used)
      [40] (not used)
      [41] (not used)
      [91] <applyCola bool> Apply Funding COLA (1=yes, 0=no)
      [136] <segIntPBGC vector> Segmented spot rates (used when interest rate type=6)
            [1] <segOneRate num> Interest rate for first segment (durations 1-5)
            [2] <segTwoRate num> Interest rate for second segment (durations 6-20)
            [3] <segThreerate num> Interest rate for third segment (durations 21+)
      [139] <useTargforPBGC bool> Use PPA max tax liability interest rate assumption for PBGC? (Used for PPATYPE #in 2 5 only)
      [203] <exclCount nameref> Headcount exclusion coded database field, or '' if <not applicable>
      [204] <exclCodes vector> vector of codes that indicate to exclude from count

    Alternative ABO
      [42] <aboIntRate num> Interest rate (not supported eff with 3.10)
      [43] (not used)
      [44] (not used)
      [45] (not used)
      [46] (not used)

    Plan Termination Liability (discontinued)
      [47] (not used)
      [48] (not used)
      [49] (not used)
      [50] (not used)
      [51] (not used)
      [52] (not used)
      [53] (not used)
      [54] (not used)
      [55] (not used)
      [56] (not used)
      [57] (not used)
      [58] (not used)

    Other Valuation Parameters
      [10] <fracPopMarMale num> Fraction of population that is married -- Male employee
      [11] <fracPopMarFem num> Fraction of population that is married -- Female employee
      [61] <fracMarPopMaleJs num> Fraction of married population electing J&S option -- Male employee
      [63] <fracMarPopFemJs num> Fraction of married population electing J&S option -- Female employee
      [13] <yearsOlderMale num> Number of years older a member is than their spouse -- Male employee
      [64] <yearsOlderFem num> Number of years older a member is than their spouse -- Female employee
      [59] (not used)
      [60] (not used)
      [62] (not used)
      [65] (not used)
      [71] <termCost [] ref BENDEF> Term Cost -- a vector of benefit ID numbers
      [77] (not used)
      [141] <popMarType code> Fraction of population married code:
            1 = constant (items 10 and 11 are used)
            2 = table (table in item 142 is used)
      [142] <popMarried see FRACMARRIED_DEF> Fraction of population married (used if [141]=2)
      [152] <AgeDiffType code> Spouse age difference code:
            1 = constant (items 13 and 64 are used)
            2 = table (table in item 153 is used)
      [153] <AgeDifference ref SPAGEDIFF> Spouse age difference table (used if [152]=2)

    Statutory Data
      [72] <limit415IntRateBefore72 num> 415 limit: interest rate before age 62
      [73] <limit415IntRateAfterSS num> 415 limit: interest rate after S.S. normal retirement age
      [74] <limit415Mort ref MORTRATE> 415 limit: mortality table ID number
      [78] <histStatutoryOver see STATOVER_DEF> Historical Statutory data override
      [80] <limit415SvcField nameref> 415 limit: participation service field, or '' if
           service defined in census is used (used iff [113]=0)
      [84] <limit415ApplyMortDis bool> 415 limit: apply mortality discount in actuarial reductions & increases
           (1=yes, else no)
      [85] <limit415ApplyInc bool> 415 limit: apply actuarial increases after SSNRA (1=yes, else no)
      [87] <limit415High3 code> 415 limit: highest 3-year average salary limitation:
           1 = Valuation Salary from Census Specifications
           2 = Alternative Salary Definition
           3 = Limitation not applicable
      [89] <limit415SalDefin ref SALDEFN> 415 limit: salary definition id# (used w/alternative salary)
      [93] (not used)
      [94] <limit415Apply10k bool> 415 limit: apply $10,000 exemption (1=yes, else no)
      [102] <apply2001 bool> Apply 2001 Tax Act actuarial equivalence and rounding provisions (1=yes)
      [112] <limit415PartSvcFldOrDef bool> Using ProVal service field (0) or service definition (1)
      [113] <limit415PartSvcDEFN ref SVCDEFN> ID of ProVal service definition for participation
            service (used iff [112]=1)
      [117] <ITAPartSvcFldOrDef bool> Using ProVal service field (0) or service definition (1)
      [118] <ITASvcField nameref> ITA limit: benefit accrual service field, or '' if service defined in census is used (used iff [117]=0)
      [119] <ITAPartSvcDEFN ref SVCDEFN> ID of ProVal service definition for benefit accrual service (used iff [117]=1)
      [120] <ITASvcSplit bool> ITA service split based on reform date
      [121] <ITASvcPre nameref> ITA prereform service - only field allowed (used if [120]=1])
      [122] <ITAPartPstSvcFldOrDef bool> Using post reform service field (0) or service definition (1) (used if [120]=1])
      [123] <ITAPartPstSvcField nameref> ITA post reform: participation service field, or '' if service defined
            in census is used (used if [120 122]#match 1 0)
      [124] <ITAPartPstSvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service (used iff [120 122]#match 1 1)
      [125] <PublicRedFac bool> Apply public safety plan early reduction factor
      [126] <applyMaxBen bool> Apply US 415(b) maximum benefit limit (1=yes)
      [127] <applyMaxComp bool> Apply US 401(a)(17) maximum compensation limit (1=yes)
      [157] <limit415PayFreq code> Payment frequency to be used in actuarial reduction & increase factors
                 1=Annual boy
                 2=Use plan's benefit payment frequency and timing
      [160] <GerAIField str> database field name for federal state, or <all former West Germany> or <all former East Germany>
      [161] <GerAI matrix> field mapping matrix.  Has a row for each possible value of the database field, and columns holding:
            [;1] <databaseCode int> internal code of status field in database
            [;2] <GerAI code> corresponding status, represented as follows:
                 1 = former West Germany
                 2 = former East Germany
      [164] <GerKLField str> coal miner coded field, or <all coal miners> or <all statutory>
      [165] <GerKL matrix> field mapping matrix.  Has a row for each possible value of the database field, and columns holding:
            [;1] <databaseCode int> internal code of coal miner field in database
            [;2] <GerKL code> coal miner codes:
                 1 = coal miner
                 2 = statutory
      [167] <GerSVRTField str> SVR retirement type coded field, or <all ordinary retirement>
      [168] <GerSVRT matrix> field mapping matrix.  Has a row for each possible value of the database field, and columns holding:
            [;1] <databaseCode int> internal code of SVR type in database
            [;2] <GerKL code> SVR type codes:
                 1 = Ordinary retirement
                 2 = Severely handicapped
                 3 = Part-time pre-retirement (ATZ)
      [170] <ITAERFSvcFldOrDef bool> Using ProVal service field (0) or service definition (1)
      [171] <ITAERFSvcField nameref> ITA limit: service field for early ret factors, or '' if service defined in census is used (used iff [170]=0)
      [172] <ITAERFSvcDEFN ref SVCDEFN> ID of ProVal service definition for early ret factors (used iff [170]=1)
      [178] <415pre62bens bool> Do not reduce death and disability benefits before age 62
      [179] <415pre62and15 bool> Do not reduce benefits before age 62 if 15 years of participation service
      [180] <415proFraction bool> Do not apply proration fraction to death and disability benefits
      [205] <415display bool> Display 415 limit applied to records in processing messages

    Cost-of-Living Adjustments (COLAs)
      [18] <colaPayPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> COLA during payment period
      [19] <colaDeferPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> COLA during deferral period
      [101] <rateType code> Rate type
                 1 = compound
                 2 = simple
                 3 = advanced (i.e. expression in [181])
      [140] <colaOverrides see COLAASSUMS_DEF> COLA overrides for individual benefits
      [175] <colaTimeType code> COLA timing type
                 1 = end of year
                 2 = constant date
                 3 = database field
      [176] <colaTimeDate date> COLA date (if [175] = 2)
      [177] <colaTimeField nameref> COLA field (if [175] = 3)
      [181] <COLAFormula expr> COLA formula (character vector, used if [101]=3)
      [183] <colaSENS bool> +/- valuation assumption sensitivities applicable? 0=no, 1=yes

    Optional Forms
      [148] <optforms see OPTFRM_DEF> This item is a matrix having a row for each optional form referenced in a benefit definition
          and columns holding (see OPTFRM_DEF below)

    415(b) Payment Form Adjustments
      [192] <415PayFormAdj matrix> Table having a row for each benefit/payment form. The columns hold:
            [;1] <benId ref BENDEF> benefit ID #
            [;2] <pfId ref PAYFORM> payment form ID #
            [;3] <table ref ABTABLE> benefit component table id #

    Assumption Constants
      [208] <axParams vector> Assumption constant parameters
            [1] <axNames ref ASSUMX> Matrix of Assumption Constant names
            [2] <axvalues num> Assumption Constant values, vector with an item for each Assumption Constant [#assumconstants]

DECRATES_MORTRATE_DEF[] Mortality rates
    [1]  <type code> Rate type:
         0=no rates
         1=rates vary by calendar year of decrement
         2=rates vary by coded database field
         3=single rate table
         6=rates by benefit
         8=rates by calendar year of decrement and coded field
        12=rates vary by calendar year of valuation
    [2]  <calYearRates matrix> Calendar year rates (used if type #in 1 8 12)
         [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
         [;2] <rate ref MORTRATE> id # of table, 0 if <no rates>
    [3]  <field nameref> Name of coded database field (used if type #in 2 8)
    [4]  <databaseRates matrix> Coded database field rates (used if type #in 2 8)
         [;1] <code int> internal database code
         [;2] <table ref MORTRATE> id # of table, 0 if <no rates>, or vector of id #'s
    [5]  <table ref MORTRATE> id # of table (used if type=3)
    [6]  <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
    [7]  <SvcField nameref> service field for service-based tables or
         '' if rounded service from hire (used if [6]=0)
    [8]  <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
         (used if [6]=1)
    [9]  <RetAgeType Code> (not used) (initialized to 1)
    [10] <RetAgeNum Num> (not used) (initialized to MV)
    [11] <RetAgeField Nameref> (not used) (initialized to '')
    [12] <RetAgeonValDateBase table Ref RETRATE> (not used) (initialized to MV)
    [13] <RetAgeonValDateMatrix> (not used) (initialized to 0 4 #rho MV)
    [14] <RatesByBenefit matrix> Rates by benefit (used if type=6)
         [;1] <benefit ref BENDEF> id # of benefit definition
         [;2] <table ref MORTRATE> id # of table
    [15] <ValSalOrDef bool> (not used) (initialized to 0)
    [16] <SalDEFN ref SALDEFN> (not used) (initialized to MV)
    [17] <EURDtabcon code> (not used) (initialized to 1)
    [18] <EURDfrac num> (not used) (initialized to MV)
    [19] <EURDYRS num> (not used) (initialized to MV)
    [20] <EURDult num> (not used) (initialized to MV)
DECRATES_TERMRATE_DEF[] Termination rates
    [1]  <type code> Rate type:
         0=no rates
         1=rates vary by calendar year
         2=rates vary by coded database field
         3=single rate table
         6=rates by benefit
         8=rates by calendar year and coded field
    [2]  <calYearRates matrix> Calendar year rates (used if type #in 1 8)
         [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
         [;2] <rate ref TERMRATE> id # of table, 0 if <no rates>
    [3]  <field nameref> Name of coded database field (used if type #in 2 8)
    [4]  <databaseRates matrix> Coded database field rates (used if type #in 2 8)
         [;1] <code int> internal database code
         [;2] <table ref TERMRATE> id # of table, 0 if <no rates>, or vector of id #'s
    [5]  <table ref TERMRATE> id # of table (used if type=3)
    [6]  <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
    [7]  <SvcField nameref> service field for service-based tables or
         '' if rounded service from hire (used if [6]=0)
    [8]  <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
         (used if [6]=1)
    [9]  <RetAgeType Code> (not used) (initialized to 1)
    [10] <RetAgeNum Num> (not used) (initialized to MV)
    [11] <RetAgeField Nameref> (not used) (initialized to '')
    [12] <RetAgeonValDateBase table Ref RETRATE> (not used) (initialized to MV)
    [13] <RetAgeonValDateMatrix> (not used) (initialized to 0 4 #rho MV)
    [14] <RatesByBenefit matrix> Rates by benefit (used if type=6)
         [;1] <benefit ref BENDEF> id # of benefit definition
         [;2] <table ref TERMRATE> id # of table
    [15] <ValSalOrDef bool> (not used) (initialized to 0)
    [16] <SalDEFN ref SALDEFN> (not used) (initialized to MV)
    [17] <EURDtabcon code> (not used) (initialized to 1)
    [18] <EURDfrac num> (not used) (initialized to MV)
    [19] <EURDYRS num> (not used) (initialized to MV)
    [20] <EURDult num> (not used) (initialized to MV)
DECRATES_DISABRATE_DEF[] Disability rates (active members)
    [1]  <type code> Rate type:
         0=no rates
         1=rates vary by calendar year
         2=rates vary by coded database field
         3=single rate table
         6=rates by benefit
         8=rates by calendar year and coded field
    [2]  <calYearRates matrix> Calendar year rates (used if type #in 1 8)
         [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
         [;2] <table ref DISABRATE> id # of table, 0 if <no rates>
    [3]  <databaseField nameref> Name of coded database field (used if type #in 2 8)
    [4]  <databaseRates matrix> Coded database field rates (used if type #in 2 8)
         [;1] <code int> internal database code
         [;2] <table ref DISABRATE> id # of table, 0 if <no rates>, or vector of id #'s
    [5]  <table ref DISABRATE> id # of table (used if type=3)
    [6]  <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
    [7]  <SvcField nameref> service field for service-based tables or
         '' if rounded service from hire (used if [6]=0)
    [8]  <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
         (used if [6]=1)
    [9]  <RetAgeType Code> (not used) (initialized to 1)
    [10] <RetAgeNum Num> (not used) (initialized to MV)
    [11] <RetAgeField Nameref> (not used) (initialized to '')
    [12] <RetAgeonValDateBase table Ref RETRATE> (not used) (initialized to MV)
    [13] <RetAgeonValDateMatrix> (not used) (initialized to 0 4 #rho MV)
    [14] <RatesByBenefit matrix> Rates by benefit (used if type=6)
         [;1] <benefit ref BENDEF> id # of benefit definition
         [;2] <table ref DISABRATE> id # of table
    [15] <ValSalOrDef bool> (not used) (initialized to 0)
    [16] <SalDEFN ref SALDEFN> (not used) (initialized to MV)
    [17] <EURDtabcon code> (not used) (initialized to 1)
    [18] <EURDfrac num> (not used) (initialized to MV)
    [19] <EURDYRS num> (not used) (initialized to MV)
    [20] <EURDult num> (not used) (initialized to MV)
DECRATES_RETRATE_DEF[] Retirement rates (active members).
    [1]  <type code> Rate type:
         1=rates vary by calendar year
         2=rates vary by coded database field
         3=single rate table
         4=100% at a specified retirement age
         5=rates by age/service on valuation date
         6=rates by benefit
         8=rates by calendar year and coded field
         9=actuarial retirement age (IFGERMAN)
        11=same as actives (post-termination retirement rates only)
    [2]  <calYearRates matrix> Calendar year rates (used if type=1)
         [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
         [;2] <table ref RETRATE> id # of table
    [3]  <databaseField nameref> Name of coded database field (used if type #in 2 8)
    [4]  <databaseRates matrix> Coded database field rates (used if type #in 2 8)
         [;1] <code int> internal database code
         [;2] <table ref RETRATE> id # of table, or vector of id #'s
    [5]  <table ref RETRATE> id # of table (used if type=3)
    [6]  <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
    [7]  <SvcField nameref> service field for service-based tables or
         '' if rounded service from hire (used if [6]=0)
    [8]  <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
         (used if [6]=1)
    [9]  <RetAgeType code> Use constant (1) or database field (2) for 100% retirement age (used if [1]=4)
             1=constant
             2=database field
    [10] <RetAgeNum num> Constant age for 100% retirement (used if [9]=1)
    [11] <RetAgeField nameref> Database field for 100% retirement age (used if [9]=2)
    [12] <RetAgeonValDateBase table ref RETRATE> id # of base retirement rates (used if type=5)
    [13] <RetAgeonValDateMatrix matrix> Matrix of rates if using rates defined by age/svc/points on valuation date (used if type=5)
         [;1] <retage num> age
         [;2] <retsvc num> service
         [;3] <retpoints num> points
         [;4] <table ref RETRATE> id # of table
    [14] <RatesByBenefit matrix> Rates by benefit (used if type=6)
         [;1] <benefit ref BENDEF> id # of benefit definition
         [;2] <table ref RETRATE> id # of table
    [15] <ValSalOrDef bool> Use valuation salary (0) or salary definition (1)
    [16] <SalDEFN ref SALDEFN> ID of ProVal salary definition for replacement ratio tables
         (used if [15]=1)
    [17] <EURDtabcon code> If [1]=5 (rates by age/svc/pts), defined by 1=table, 2=constant (Projection Assumptions support tables only)
    [18] <EURDfrac num> If [17]=2, fraction retiring at specified age (not applicable to Projection Assumptions)
    [19] <EURDYRS num> If [17]=2, number of years after val date fraction in [18] retires (not applicable to Projection Assumptions)
    [20] <EURDult num> If [17]=2, ultimate retirement age (not applicable to Projection Assumptions)
DECRATES_SALSCALE_DEF[] Salary merit scale
    [1] <type code> Rate type:
        0=no rates
        1=rates vary by calendar year
        2=rates vary by coded database field
        3=single rate table
        8=rates vary by calendar year and coded field
    [2] <calYearRates matrix> Calendar year rates (used if type #in 1 8)
        [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
        [;2] <table ref SALSCALE> id # of table, 0 if <no rates>
    [3] <databaseField nameref> Name of coded database field (used if type #in 2 8)
    [4] <databaseRates matrix> Coded database field rates (used if type #in 2 8)
        [;1] <code int> internal database code
        [;2] <table ref SALSCALE> id # of table, 0 if <no rates>, or vector of id #'s
    [5] <table ref SALSCALE> id # of table (used if type=3)
    [6] <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
    [7] <SvcField nameref> service field for service-based tables or
        '' if rounded service from hire (used if [6]=0)
    [8] <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
        (used if [6]=1)
INCRATES_DEF[] Component increase rates/Cash Balance/employee contribution interest crediting rates.
    This is a matrix having a row for each symbol used in any of the
    accrual basis & benefit formulas, and columns holding the following
    information:
    [;1]  <name str> component name.  This is the name used in the benefit or accrual basis formula
          #take #take #take FIXME #take #take #take this alternates between ABCOMP or BFCOMP expression
                        but handling it is going to require that I support
                        nested IF or REIF statements that flip-flop state
                        across this tricky region.  Just do as string for now
          See INCRATES_REGDATA_DEF for reserved names for statutory items (component type ([;6])=1);
          These items may or may not be present in the table.
    [;2]  <increaseType code> increase type
             1=static
             2=variable
             3=rate table from library
             4=underlying liability (only available in Canadian mode for [;6]#in 2 9)
    [;3]  <scalarIncRate numorstr> scalar increase rate (if [;2]=1)  May be equal to MV. (can be a assumption constant)
    [;4]  <increaseRates matrix> increase rate table (for [;2]=2).  A 2-column matrix having a
          row for each different increase rate and columns(The table is sorted by year and contains no missing values):
          [;1]  <startYear numorstr> starting year (calendar) (can be an assumption constant)
          [;2]  <rate numorstr> increase rate for this and subsequent years (can be an assumption constant)
    [;5]  <libInc see INCRATES_TABLE_DEF> Increase rate table params (used if [;2]=3)
    [;6]  <type code> type of component:
             1 = statutory
             2 = benefit formula component
             3 = accrual basis formula component
             4 = lifetime maximum - limit/account balance (OPEB only)
             5 = lump sum factor benefit formula component
             6 = (not used, optional forms)
             7 = Custom Regulatory Table
             8 = Modified cash refund annuity deferred interest parameters (Non-German pension modes)
             9 = Employee contributions
            11 = benefit formula component that can vary with alternate benchmark
            12 = COLAs
            13 = eec that can vary with alternate benchmark
            14 = Insurance Contracts (Universal)
            15 = Val Contract Renewals (German)
            16 = Exp Contract Renewals (German)
            17 = New entrant asset transfer
            18 = Lifetime Maximums/Annual Limits - annual credit (OPEB)
    [;7]  <apply01Sens bool> Apply +/- valuation assumption sensitivities? (1=yes, 0=no)
    [;8]  <libEntryID num> ID of library entry for Life Max, Cust Reg, or Employee contrib (comp type [;6]#in 4 7 9 18)
          Note: Columns 9-14 are for benefit formula component Current Values
                (BFC library type 17 or 18; BFC library type is *not* the same as type code in [;6] here)
    [;9]  <CVConstVar bool> Current Value type for constant 0=single constant, 1=varies by coded field (used for BFC library type 17)
    [;10] <CVConstVal numorstr> Constant value (used for BFC library type 17)
    [;11] <CVCodedConst vector> Coded field table (used for BFC library type 17)
           a nested vector holding:
           [1] <field nameref> name of coded field in database
           [2] <item matrix> matrix with a row for each database code, and columns for:
               [;1] <CVConstDatabaseCode code> internal database codes
               [;2] <CVConstCodeValue num> current values
    [;12] <CVTableVar bool> Current Value type for table 0=single table, 1=varies by coded field (used for BFC library type 18)
    [;13] <CVTableTblComp ref ABTABLE> Current benefit component table ID# (used for BFC library type 18)
    [;14] <CVCodedTable vector> Coded field table (used for BFC library type 18)
           a nested vector holding:
           [1] <field nameref> name of coded field in database
           [2] <item matrix> matrix with a row for each database code, and columns for:
               [;1] <CVTableDatabaseCode code> internal database codes
               [;2] <CVTabeTable ref ABTABLE> table id#
    [;15] <useUnderSolv bool> For Solvency & Windup liabilities, use underlying interest rates as crediting rates
          for cash balance benefit formula components and employee contributions (0=no, 1=yes)
LSASSUMS_DEF[] Interest and Mortality Basis for Lump Sum Factors
    This is a matrix having a row for each lump sum factor benefit component, and columns
    holding the following information:
    Note: columns 9-12, and 15 are only used for post-PPA law type in U.S. Qualified mode
    [;1]  <compName str> Component Name
    [;2]  <primaryAnnMort ref MORTRATE> Primary Annuitant Mortality - table id
    [;3]  <conAnnMort ref MORTRATE> Contingent Annuity Mortality - table id
    [;4]  <intRateType code> Interest Rate Type:
           #neg4 = use underlying liability valuation interest rate using lop without adjustment if PPA spot rates
            0 = use underlying liability valuation interest rate
            1 = static (columns 5 and 14 are used)
            4 = variable by duration from valuation date (input as forward rates)
            5 = variable by duration from valuation date (input as spot rates), lop without adjustment
            7 = variable by duration from decrement date (input as forward rates)
            8 = variable by duration from decrement date (input as spot rates)
            9 = variable by duration from valuation date (input as spot rates), lop with adjustment
           11 = variable by calendar year of decrement
    [;5]  <staticIntRate numorstr> Static Interest Rate - Post-commencement (can be assumption constant)
    [;6]  <varIntRate matrix> Variable Interest Rate Table.  An N #times 2 table having a row for
          each duration in which the rate changes.  The columns hold:
          [;1]  <startDuration numorstr> starting duration from valuation date - first row applies to durations prior to the second row
          [;2]  <intRate numorstr> interest rate (can be assumption constant)
    [;7]  <overrideForSpecLiabs code> Override Lump Sum Int&Mort for Specialized Liabs?
            0=no override
            1=override interest only
            2=override int&mort
    [;8]  <DynamicMort code> Dynamic mortality as of
            1=decrement year
            2=valuation year
    [;9]  <ppaIntRateType code> Post-PPA Actuarial Liability Interest Rate Type: (only used for post-PPA law type in U.S. Qualified mode)
            1 = static
            4 = variable by duration from valuation date (input as forward rates)
            5 = variable by duration from valuation date (input as spot rates), lop without adjustment
            7 = variable by duration from decrement date (input as forward rates)
            8 = variable by duration from decrement date (input as spot rates)
            9 = variable by duration from valuation date (input as spot rates), lop with adjustment
           11 = variable by calendar year of decrement
    [;10] <ppaStaticIntRate numorstr> Post-PPA Actuarial Liability Static Interest Rate - Post-commencement (only post-PPA) (can be assumption constant)
    [;11] <ppaVarIntRate matrix> Post-PPA Actuarial Liability Variable Interest Rate Table (only post-PPA).
          An N #times 2 table having a row for each duration in which the rate changes.  The columns hold:
          [;1]  <startDuration numorstr> starting duration from valuation date - first row applies to durations prior to the second row
          [;2]  <intRate numorstr> interest rate (can be assumption constant)
    [;12] <actSameAsTarget bool> Actuarial liabilities use same as Target liabs? (0=no, 1=yes) (only post-PPA)
    [;13] <ApplySens code> Apply interest rate sensitivities (N/A if use underlying interest rates)
           #neg1=n/a
            0=no
            1=yes
    [;14] <staticIntPre numorstr> Static Interest Rate - Pre-commencement (can be assumption constant)
    [;15] <ppaStaticIntRate numorstr> Post-PPA Actuarial Liability Static Interest Rate - Pre-commencement (only post-PPA) (can be assumption constant)
    [;16] <ApplyMortSens bool> Apply mortality sensitivity?
    [;17] <calYear matrix> Calendar year interest rate table.  Row for each year in which the rate changes.
          [;1]  <startYear numorstr> starting year (calendar) - first row applies to all years prior to the year specified in the second row
          [;2]  <rate numorstr> interest rate (can be assumption canstant)
    [;18] <ppaCalYear matrix> Post-PPA Actuarial Liability calendar year interest rate table.  Row for each year in which the rate changes.
          [;1]  <startYear numorstr> starting year (calendar) - first row applies to all years prior to the year specified in the second row
          [;2]  <rate numorstr> interest rate (can be assumption constant)
QPRIMES_DEF[] Probability (at decrement) of participant electing to receive a benefit.
    This item is a matrix having a row for each benefit for which election probabilities
    have been specified and columns holding:
    [;1]  <ben ref BENDEF> benefit ID number
    [;2]  <type code> type of Q'
             0=none
             1=constant
             2=table
    [;3]  <constVal matrix> constant parameters (if type=1)
       [1] <type code> type:
            1=rates vary by calendar year
            2=rates vary by coded database field
            3=single rates
            8=rates vary by calendar year and coded field
       [2] <calYearRates matrix> Calendar year rates (used if type #in 1 8)
            [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
            [;2] <rates matrix> a matrix holding
                 [;1] <id num> id of payment form (0=normal form)
                 [;2] <const numorstr> constant value (can be assumption constant)
       [3] <databaseField nameref> Name of coded database field (used if type #in 2 8)
       [4] <databaseRates matrix> Coded database field rates (used if type #in 2 8)
            [;1] <code int> internal database code
            [;2] <rates matrix> a matrix holding
                 [;1] <id num> id number of payment form (0=normal form)
                 [;2] <const numorstr> constant value, or vector of values for calendar years (can be assumption constant)
       [5] <constVal matrix> constant value (used if type=3) a matrix holding
            [;1] <id num> id number of payment form (0=normal form)
            [;2] <const numorstr> constant value (May be equal to MV if type=0) (can be assumption constant)
    [;4]  <table matrix> table params
       [1] <type code> Table type:
            1=rates vary by calendar year
            2=rates vary by coded database field
            3=single rate table
            8=rates vary by calendar year and coded field
       [2] <calYearRates matrix> Calendar year rates (used if type #in 1 8)
            [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
            [;2] <table matrix> id # of table
                [;1] <id num> id of payment form (0=normal form)
                [;2] <table ref POSTDECPROB> id # of table
       [3] <databaseField nameref> Name of coded database field (used if type #in 2 8)
       [4] <databaseRates matrix> Coded database field rates (used if type #in 2 8)
            [;1] <code int> internal database code
            [;2] <table matrix> id # of table
                [;1] <id num> id of payment form (0=normal form)
                [;2] <table ref POSTDECPROB> id # of table, or vector of id #'s for calendar years
       [5] <table matrix> tables (used if type=3)
            [;1] <id num> id of payment form (0=normal form)
            [;2] <table ref POSTDECPROB> id # of table
       [6] <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
       [7] <SvcField nameref> service field for service-based tables or
            '' if rounded service from hire (used if [6]=0)
       [8] <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
            (used if [6]=1)
SALASSUMS_DEF[] Salary increase overrides for individual operators
    This is a matrix having a row for each salary definition to which an override applies,
    and columns holding the following information:
    [;1] <overrideUsed bool> Using override (0=no, 1=yes)
    [;2] <defId ref SALDEFN> ID# of salary definition
    [;3] (not used)
    [;4] <salType code> Type of salary override
            0=none
            1=rates vary by calendar year
            2=rates vary by coded database field
            3=single rate
            8=rates vary by calendar year and coded field
    [;5] <constantRate numorstr> Contant Interest Rate (used if [;4]=3) (can be assumption constant)
    [;6] <calYrAndRate matrix> Calendar years and interest rates for those years (used if [;4]#in 1 8)
          [;1]  <startYear int> starting year (calendar)
          [;2]  <rate numorstr> increase rate for this and subsequent years (used if type=1, else use info in [;10]) (can be assumption constant)
    [;7] <meritScale see DECRATES_SALSCALE_DEF> Salary merit scale override
    [;8] <addtlMeritScale see DECRATES_SALSCALE_DEF> Additional salary merit scale override
    [;9] <salField nameref> Name of coded database field (used if type #in 2 8)
    [;10] <salRates matrix> Coded database field rates (used if type #in 2 8)
          [;1] <code int> internal database code
          [;2] <const numorstr> constant value, or vector of values for calendar years (can be assumption constant)
FRACMARRIED_DEF[] Fraction of population married
    [1] <type code> Rate type (0 and 1 not used):
        0=no rates
        1=rates vary by calendar year
        2=rates vary by coded database field
        3=single rate table
    [2] <calYearRates matrix> Calendar year rates (used if type=1)
        [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
        [;2] <table ref FRACMARRIED> id # of table, 0 if <no rates>
    [3] <databaseField nameref> Name of coded database field (used if type=2)
    [4] <databaseRates matrix> Coded database field rates (used if type=2)
        [;1] <code int> internal database code
        [;2] <table ref FRACMARRIED> id # of table, 0 if <no rates>
    [5] <table ref FRACMARRIED> id # of table (used if type=3)
STATOVER_DEF[] Historical Statutory data override.
    An N #times 21 table having a row for each year to override.  The columns hold:
    [;1]  <year int>     Year
    [;2]  <maxBen num>   U.S. Maximum benefit
    [;3]  <maxComp num>  U.S. Maximum compensation
    [;4]  <ssWage num>   U.S. Social Security wage base
    [;5]  <cpi num>      U.S. CPI
    [;6]  <ssNatAvgWage num> U.S. Social Security national average wage
    [;7]  <canYmpe num>  Canadian YMPE
    [;8]  <canITA num>   Canadian ITA
    [;9]  <gerGAIW num>  German Average Income, West (not editable)
    [;10] <gerGAIW num>  German Average Income, East (not editable)
    [;11] <gerBBGW num>  German BBG: West
    [;12] <gerBBGWM num> German BBG: West Coalminers
    [;13] <gerARWW num>  German ARW: West
    [;14] <gerARWE num>  German ARW: East
    [;15] <gerBBGKV num> German BBG: Healthcare
    [;16] <ukFixed num>  UK Fixed Revaluation rates
    [;17] <ukRPI num>    UK RPI
    [;18] <ukCPI num>    UK CPI
    [;19] <ukS148 num>   UK Earnings Index (Section 148)
    [;20] <ukLEL num>    UK LEL
    [;21] <canYAMPE num> Canadian YAMPE
COLAASSUMS_DEF[] Individual Benefit COLA overrides
    This is a matrix having a row for each active or inactive benefit to which an override applies,
    and columns holding the following information:
    [;1]  <benType code> Type of benefit
             0=active benefit
             1=inactive benefit
             2=lump sum factor benefit formula component
    [;2]  (not used)
    [;3]  <benId int> ID# of benefit
    [;4]  <colaPayPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> COLA during payment period (or DECRATES_COLA_EXPER_DEF if projection assumptions)
    [;5]  <colaDeferPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> COLA during deferral period (or DECRATES_COLA_EXPER_DEF if projection assumptions)
    [;6]  <rateType code> Rate type
             1 = compound
             2 = simple
             3 = advanced (i.e. expression in [;9])
    [;7]  <benCompName str> Benefit formula component name (used only when [;1]=2)
    [;8]  (not used)
    [;9]  <COLAFormula expr> COLA formula (a character vector, used when [;6]=3)
    [;10] <COLAsens bool> are +/- valuation assumption sensitivities applicable? 0=no, 1=yes
    [;11] <colaPst2017 bool> Apply deferral period COLA to post-1/1/2018 portion of benefit only? 0=no, 1=yes (Germany only)
    [;12] <colaTimeType code> COLA timing type
           1 = end of year
           2 = constant date
           3 = database field
           4 = according to valuation assumptions (available in non-German only)
    [;13] <colaTimeDate date> COLA date (if [;16]=1^[;12]=2)
    [;14] <colaTimeField nameref> COLA field (if [;16]=1^[;12]=3)
    *** 15-21 Apply to German mode only
    [;15] <applyCOLA bool> For retirement decrements, apply COLA from sharp ages
    [;16] <colaAnnualType code> COLA timing type
            1 = annually
            2 = every X years
            3 = according to valuation assumptions
    [;17] <colaXyears num> X (if [;16]=2)
    [;18] <colaTimeTypeX code> Every X years COLA timing type (if [;16]=2)
            1 = X years from date of commencement
            2 = at constant date
            3 = at date from database field
    [;19] <colaTimeDateX date> COLA date (if [;16]=2^[;18]=2)
    [;20] <colaTimeFieldX nameref> COLA field (if [;16]=2^[;18]=3)
    [;21] <colaReduceFirst bool> Reduce first increase if less than X years? 0=no, 1=yes (if [;16]=2^[;18]#in 2 3)
OPTFRM_DEF[] Optional form parameters in valuation assumptions
    This item is a matrix having a row for each optional form referenced in a benefit definition
    and columns holding:
    [;1]  <payfrm ref PAYFORM> payment form ID number
    [;2]  <type code> type of assums
             1=int & mort
             2=table
             3=underlying interest
             4=variable interest & mortality
            #neg1=underlying interest using lop without adjustment if PPA spot rates
             11=calendar year of decrement interest & mortality
    [;3]  <intrate numorstr> interest rate (if type=1) (can be assumption constant)
    [;4]  <varIntRate matrix> Variable Interest Rate Table.  (for type=4) An N #times 2 table having a row for
          each duration in which the rate changes.  The columns hold:
          [;1]  <startDuration numorstr> starting duration from valuation date - first row applies to durations prior to the second row
          [;2]  <intRate numorstr> interest rate (can be assumption constant)
    [;5]  <VarDate code> Variable interest as of:
            1=valuation date
            2=decrement date
    [;6]  <VariableInput code> variable interest is:
            1=forward rates
            2=spot rates
            5=spot rates, lop without adjustment
    [;7]  <morttbl ref MORTRATE> primary annuitant mortality table ID# (if type #ne 2)
    [;8]  <conmorttbl ref MORTRATE> contingent annuitant mortality table ID# (if type #ne 2)
    [;9]  <gen code> if generational mortality from:
            1=valuation date
            2=decrement date
    [;10] <table ref ABTABLE> benefit component table id # (for type=2)
    [;11] <override code> Override Int&Mort for Actuarial liability (PPA) or Specialized Liabs?
            0=no override
            1=override interest only
            2=override int&mort
    [;12] <AlIntrate num> interest type for actuarial liability if override
            1 = static
            4 = variable by duration from valuation date (input as forward rates)
            5 = variable by duration from valuation date (input as spot rates), lop without adjustment
            7 = variable by duration from decrement date (input as forward rates)
            8 = variable by duration from decrement date (input as spot rates)
            9 = variable by duration from valuation date (input as spot rates), lop with adjustment
           11 = calendar year of decrement interest rates
    [;13] <AlIntrate numorstr> interest rate for actuarial liability if override
    [;14] <ALVarIntRate matrix> Variable Interest Rate Table for actuarial liability.  (for type=4) An N #times 2 table having a row for
          each duration in which the rate changes.  The columns hold:
          [;1]  <startDuration numorstr> starting duration from valuation date - first row applies to durations prior to the second row
          [;2]  <intRate numorstr> interest rate (can be assumption constant)
    [;15] <ApplySens bool> Apply interest rate sensitivities (N/A if use underlying interest rates)
    [;16] <PlanTblComAge code> Plan factors table lookup at:
            1=decrement age
            2=commencement age
    [;17] <ApplyMortSens bool> Apply mortality sensitivities?
    [;18] <calYear matrix> Calendar year interest rate table.  Row for each year in which the rate changes.
          [;1]  <startYear numorstr> starting year (calendar) - first row applies to all years prior to the year specified in the second row
          [;2]  <rate numorstr> interest rate (can be assumption constant)
    [;19] <ppaCalYear matrix> Calendar year interest rate table for actuarial liability (for type 11).  Row for each year in which the rate changes.
          [;1]  <startYear numorstr> starting year (calendar) - first row applies to all years prior to the year specified in the second row
          [;2]  <rate numorstr> interest rate (can be an assumption constant)
    [;20] <ApplyCOLAs bool> Apply COLAs?
DECRATES_COLA_DEF[] COLA Definition Vector for valuation assumptions
    [1] <type code> Type
          1 = constant
          2 = variable
          3 = db field
    [2] <const numorstr> Constant COLA rate (can be an assumption constant)
    [3] <table see COLA_TABLE_DEF> COLA table params
    [4] <field nameref> Name of db field containing COLA rate
COLA_TABLE_DEF[] COLA table params
    [1] <type code> Variable type:
        0=no rates
        1=rates vary by calendar year
        2=rates vary by coded database field
        3=single rate table
        7=rates vary by duration from valuation date (Canadian transfer value COLA only)
        8=rates vary by coded field and calendar year
    [2] <calYearRates matrix> Calendar year rates (used if type #in 1 8)
        [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
        [;2] <table numorstr> id # of table or 0 if <no rates> (if [6]=2) or COLA rate (if [6]=3) (used if type=1, else use info in [4])
             (COLA rates may be numeric or assumption constants)
    [3] <databaseField nameref> Name of coded database field (used if type #in 2 8)
    [4] <databaseRates matrix> Coded database field rates (used if type #in 2 8)
        [;1] <code int> internal database code
        [;2] <table numorstr> id # of table or 0 if <no rates> (if [6]=2) or COLA rate (if [6]=3) (vector of ids/rates if type=8)
             (COLA rates may be numeric or assumption constants)
    [5] <table ref COLA> id # of table (used if type=3)
    [6] <entryType code> Entry type:
        1=no longer used; do not reuse
        2=table
        3=constant
    [7] <durRates matrix> Rates variable by duration (used if type=7) (Used only by Canadian transfer value COLA)
        [;1] <year int> duration from valuation date, the value in [1;1] is ignored
        [;2] <table num> id # of table or 0 if <no rates> (if [6]=2) or COLA rates (if [6]=3)
             (COLA rates may be numeric or assumption constants)
